Discovery of multiple-parent dependencies in network performance analysis

ABSTRACT

Multiple parent-dependencies are identified for messages that are received on a network that includes nodes that are configured to avoid the conventional strictly-sequential communications techniques and protocols, in order to accelerate network performance. If a network is known, or assumed, to include intermediate/proxy nodes that are configured to provide acceleration, access control, and other services, the system that analyzes traffic on the network is configured to assume that these nodes may/will provide such features, and thereby introduce multiple dependencies among the messages communicated across the network. For each message transmitted from a forwarding node, messages received at the forwarding node are assessed to distinguish messages from the destination node and messages from an other node, and a dependency is defined for each.

This application claims the benefit of U.S. Provisional PatentApplication 61/059,292, filed 6 Jun. 2008.

BACKGROUND AND SUMMARY OF THE INVENTION

This invention relates to the field of network analysis, and inparticular to the identification of multiple dependencies on packetsforwarded from intermediate nodes in a network, and in particularpackets forwarded from intermediate application acceleration nodes, suchas WAN optimization devices.

The effective management of networks requires the use of a variety ofnetwork analysis tools. Many of these tools are configured to analyzeactual traffic flows on the network, to characterize the performance ofparticular applications, diagnose performance problems, perform‘what-if’ analyses, and so on.

Of particular significance in network performance analysis is theidentification of dependencies associated with the messages that arecommunicated through the network. In diagnosing a problem, theidentification of dependencies can lead to an identification of thecause or causes of the problem, or the elimination of candidate causes.In addressing means for improving the performance of a network, theidentification of dependencies can lead to an identification of wherebest to enhance the network, and/or identify areas in which anenhancement to the network will have minimal impact on the overallperformance.

In the general case, the identification of dependencies can lead to anidentification of critical paths within the network, or anidentification of critical paths associated with a particularapplication running on the network. U.S. published application2008/0019278, “NETWORK CONGESTION ANALYSIS”, published 24 Jan. 2008, bySteve Niemczyk, Patrick J. Malloy, Alain J. Cohen, and Russell M.Elsner, discloses techniques for identifying critical paths inapplications that include multiple paths, and techniques for determiningwhere improvements can be made and estimating the gains that may beachieved by such improvements, and is incorporated by reference herein.Although the techniques presented in this referenced application addressapplications that include multiple paths, these techniques primarilyaddress the case wherein the multiple paths are substantiallyindependent of each other, and each received message has a singledependency-path back to the initiating request.

In a typical example of a request for data from a server that is coupledto a database, when a requesting node receives a response to therequest, that response can be traced back to either a direct responsefrom the server in response to receiving the request from the requestingnode, or a response from the server after the server received theresponse from the database, based on a request from the server to thedatabase upon receipt of the request from the requesting node. That is,in each case, there is a strict sequential order to the responses, andthe analysis tools are configured to assume this sequential order,particularly for such tasks as aligning clocks among data collectingdevices, performing conditional analyses, and so on. That is, forexample, if a response is determined to be dependent upon a priorrequest, the network analysis tool is configured to never allow theresponse to be interpreted to have occurred prior to receipt of therequest. U.S. published applications 2006/0013228, “PACKET TRACING”,published 19 Jan. 2006, and 2006/0050704, “CORRELATING PACKETS”,published 9 Mar. 2006, both by Patrick J. Malloy, Michael Cohen, andAlain J. Cohen, address network analysis tasks that rely on determininga sequential dependency among messages, and are incorporated byreference herein.

In a number of network environments, one or more elements are configuredto enhance the performance of the network by initiating actions thatbypass or otherwise avoid the strict sequentially associated withtypical communication transactions. For example, some communicationprotocols call for an acknowledgement of receipt of a prior transmissionby the destination node before sending a subsequent transmission, andsome intermediate devices, commonly termed ‘proxy’ devices, areconfigured to avoid this requirement by ‘spoofing’ the transmitting nodewith an acknowledgement long before the destination node provides theactual acknowledgement. In another example, an intermediate device maybe configured to ‘pre-fetch’ data on behalf of a requesting node, inanticipation of a request for that data by the requesting node.

WAN optimization devices, commonly termed WAN accelerators, have beendeveloped to further enhance these delay-avoidance techniques byoperating in tandem using specific protocols that are designed for suchtandem devices. FIG. 1 illustrates a typical network configuration usinga pair of WAN accelerators 20. Each network node 10 on either side ofthe network is substantially unaware of the presence of the accelerators20, and each accelerator 20 is configured to operate as a proxy node forthe network nodes 10, appearing as a conventional destination networknode 10. That is, the WAN accelerator 20 communicates with the node 10using a conventional communication protocol common to nodes 10, andcommunicates with the other WAN accelerator 20 using a communicationprotocol that is designed to optimize communications between theaccelerators 20. For example, each WAN accelerator 20 will generallyinclude a large amount of storage for caching data that has been sent tothe nodes 10, and each WAN accelerator 20 knows which data is stored atthe other WAN accelerator 20. When a source node 10 subsequentlyinitiates a transmission of some or all of a prior transmission to adestination node 10, the WAN accelerator 20 at the source side of thenetwork merely sends a command to the WAN accelerator 20 on thedestination side of the network to initiate a transmission of thispreviously stored data from its cache to the destination node, therebyavoiding an actual transmission of the data across the network,transparent to either the source or destination nodes. Other techniquesfor accelerating traffic flow are common in the art of WAN acceleration.

Because of the use of these acceleration/sequence-avoiding techniques,it is often difficult to ascertain the causal relationships and/orparent-dependencies in view of the actual traffic flow. In the case ofpre-fetching by an intermediate node, for example, providing a responseto the requesting node is dependent upon actually receiving the requestfrom the requesting node, as well as actually receiving the response tothe anticipated request by the intermediate node. As noted above,conventional network analysis systems assume a single dependency pathfor each received message, and are poorly suited for the analysis ofnetworks that include intermediate nodes that introduce multipledependencies on the receipt of a message.

It would be advantageous to provide a method and system that facilitatesthe determination of multiple-parent dependencies on messages in anetwork that includes nodes that generally introduce such dependencies.It would also be advantageous to provide this determination ofmultiple-parent dependencies to other network analysis tools, tofacilitate accurate analyses of traffic flows on the network, and toavoid infeasible situations and/or conclusions within these othernetwork analysis tools.

These advantages, and others, can be realized by a system and methodthat identifies multiple parent-dependencies for messages that arereceived on a network that includes nodes that are configured to avoidthe conventional strictly-sequential communications techniques andprotocols, generally to accelerate network performance. If a network isknown, or assumed, to include intermediate/proxy nodes that areconfigured to provide acceleration services, the system that analyzestraffic on the network is configured to assume that these nodes may/willprovide such features, and thereby introduce multiple dependencies amongthe messages communicated across the network. For each messagetransmitted from a forwarding node, messages received at the forwardingnode are assessed to distinguish messages from the destination node andmessages from an other node, and a dependency is defined for each.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is explained in further detail, and by way of example,with reference to the accompanying drawings wherein:

FIG. 1 illustrates an example network with a pair of WAN accelerators.

FIGS. 2A-2F illustrate example message sequences.

FIG. 3 illustrates an example flow diagram in accordance with principlesof this invention.

FIG. 4 illustrates an example block diagram in accordance withprinciples of this invention.

Throughout the drawings, the same reference numerals indicate similar orcorresponding features or functions. The drawings are included forillustrative purposes and are not intended to limit the scope of theinvention.

DETAILED DESCRIPTION

In the following description, for purposes of explanation rather thanlimitation, specific details are set forth such as the particulararchitecture, interfaces, techniques, etc., in order to provide athorough understanding of the concepts of the invention. However, itwill be apparent to those skilled in the art that the present inventionmay be practiced in other embodiments, which depart from these specificdetails. In like manner, the text of this description is directed to theexample embodiments as illustrated in the Figures, and is not intendedto limit the claimed invention beyond the limits expressly included inthe claims. For purposes of simplicity and clarity, detaileddescriptions of well-known devices, circuits, and methods are omitted soas not to obscure the description of the present invention withunnecessary detail.

FIG. 2A illustrates an example message sequence. Node D sends amessage/query Q1 to node S, via intermediate/forwarding node F. Node Fprocesses the query Q1 to determine that it is directed to node S, andforwards the query to node S as query Q1′. Node S processes the query Q1and provides a response/answer A1 to node F. Node F processes the answerto determine that it is directed to node D, and forwards the answer tonode D as answer A1′. The designations of “D”, “F”, and “S” are used forconvenience and generally refer to the “source” node S of informationthat is sent to a “destination” node D via a “forwarding” node F.

The “V” shaped connections 201 indicate the dependency of each messageon its predecessor message. That is, Q1′ is dependent upon receipt of Q1at node F, because node F would not have sent message Q1′ to node S hadit not received message Q1 from node D. In like manner, message A1 isdependent upon receipt of message Q1 at node S, and message A1′ isdependent upon receipt of message A1 at node F.

Also illustrated in FIG. 2A is a second question-answer sequenceQ2-Q2′-A2-A2′. Although Q2 is sent after receipt of A1′, it is not, perse, dependent upon A1′, because the user at node D could have submittedthe second question before receiving a response to the first question.On the other hand, the second query Q2 could have been dependent uponreceipt of the answer A1′. However, because monitoring of these messagestypically provides no information regarding whether the second questioncould have been initiated before receipt of A1′, most conventionalnetwork analysis systems will infer a dependency 202 if the length oftime between the receipt of message A1′ and the transmission of messageQ2 suggests causality. Alternatively, as taught in the aforementionedpatent publication 2008/0019278, “NETWORK CONGESTION ANALYSIS”, it maybe recognized that the Q1-Q1′-A1-A1′ and Q2-Q2′-A2-A2′ sequencesconstitute independent sequences, and the inferred dependency 202 wouldnot occur, or would be defined such that Q2 is dependent on Q1.

Of particular note, regardless of whether the user submits the secondquery Q2 before or after receiving the first answer A1′, the forwardingnode F of FIG. 2A processes all messages in a strictly sequentialmanner. Forwarding node F waits to receive a message from one node, andthen forwards that message some (short) time after receiving it.

The purpose of defining dependencies is to allow network analysissystems to identify critical paths for transactions of interest, and toperform critical path analyses for such transactions. In a typicalembodiment, network analysis systems, and particularly systems thatperform “what-if” analyses, use the defined dependencies to avoidproducing infeasible sequences of events or results based on suchinfeasible sequences. For example, a user of a network analysis systemmay desire to know what effect increased bandwidth or improvedprocessing would have on the performance of the network using this samesequence of messages. In such analyses, the slope of the arrows, whichindicates the difference in time between the transmission of a messagefrom one node to another node, will increase and/or the duration of timebetween receipt of one message and transmission of another willdecrease. The overall effect of such analyses is to shift the messagesto the left by shortening the critical path or creating a differentcritical path. The dependencies are used to prevent the shifting of amessage to a time before the occurrence of the message that it isdependent upon (herein termed the ‘parent’ message). That is, forexample, regardless of the proposed/hypothesized improvements to thelink between F and S of FIG. 2A, and regardless of the improvement ofprocessing at either F or S, or both, the network analysis system willconstrain the sliding of Q1′ so as to never occur before Q1 arrives atnode F, because Q1′ is defined to be dependent on Q1 at node F.

As noted above, conventional dependency determinations are based solelyon the assumption that if a message is transmitted/forwarded from a nodesoon after receiving a message at the node, the transmitted message isassumed to be dependent upon receipt of the received message at thenode. Generally, the messages at the forwarding node are filtered toidentify messages that correspond to a particular transaction, using,for example, the header data or other information in the messages, sothat received messages that are unrelated to the particular transactionare not mistakenly identified as the causing/parent message. Forexample, forwarding node F may be forwarding messages to other nodes, orto the same node, but in response to a different transaction, such thatthere are other messages appearing in the trace data received from thenodes. In the example of FIG. 2A, the content of message A1′ can becompared to the content of other received messages at node F toeliminate received messages that do not correspond to the message A1that provided the content of message A1′. Optionally, the application atthe transmitting node, or the application on the forwarding node can beconfigured to add special information to the messages or the trace datato explicitly identify correspondences between receptions andtransmissions to facilitate this dependency determination.

FIG. 2B illustrates a similar question-answer scenario as FIG. 2A, butin this example, a forwarding node P includes features that allow it toavoid the strictly sequential nature of messages in FIG. 2A. For ease ofreference and convenience, forwarding nodes that may provide features toimprove performance over a strictly sequential forwarding node areherein termed “proxy” nodes, because conventional proxy nodes generallyprovide such features. Other terms, such as “acceleration node” are alsocommonly used. In the example of FIG. 1, each of the WAN accelerators 20operates as a proxy node as the term is used herein.

In FIG. 2B, the proxy node P is configured to ‘prefetch’ the secondanswer A2 from node S, in anticipation of receiving the request Q2 forthis answer. That is, node P is aware of a correlation between questionsQ1 and Q2, such that Q2 generally follows Q1, and submits Q2′ to node Sin order to be able to respond to node D sooner than it would if itwaited until node D submits question Q2. For example, Q1 may be arequest for an address, and Q2 may be a request for a map for thataddress. When node P receives the address A1 from node S, it sends therequest Q2′ for the map, so that if/when the user of node D submits therequest Q2 for the map to node P, it will have it available in itsmemory, and can respond immediately to request Q2 with the response A2.

As can be seen, the response time T2 to the request Q2 at node D of FIG.2B is substantially smaller than the strictly sequential response timeT1 to this same request Q2 at node D of FIG. 2A, because the node P ofFIG. 2B is able to respond immediately to the request Q2, whereas thenode F of FIG. 2A must wait while its request Q2′ is answered by node S.

With regard to dependencies, the conventional technique of identifyingthe last received message that is proximate in time to a transmittedmessage as the cause/parent of the transmitted message will identify thedependency 210 of transmitting answer A2′ upon the receipt of questionQ2. This is a properly identified dependency; the proxy node P shouldnot send the anticipated answer to node D until the user of node Dactually submits the request Q2, because on many occasions, the user maysubmit a different question than the anticipated question Q2, for whichthe answer A2′ would not be appropriate.

Note, however, that the conventional technique of identifying dependency210 fails to recognize that the transmission of A2′ from P to D is alsodependent upon receipt of the answer A2 at node P. In the above mapexample, node P cannot provide the map A2′ to node D until it receivesthe map A2 from node S, and should not provide it to node D until itreceives the request Q2 from node D. In FIG. 2B, in addition to thedependency 210 between A2′ and Q2 of FIG. 2B, another dependency shouldbe shown between A2′ and A2.

FIG. 2C illustrates another scenario, in which the proxy node P submitsthe prefetch request Q2′ to node S, but receives the request Q2 fromnode D before it receives the answer A2 from node S. In this scenario,node P cannot send the answer A2′ to node D until it receives the answerA2 from node S, and the conventional dependency identification techniquewill properly identify this dependency 220. Note, however, that theconventional dependency identification technique will now omit thedependency of transmitting the answer A2′ to node D only after receivingthe question Q2 from node D.

FIG. 2E illustrates another acceleration technique that is commonly usedfor forwarding large messages/files. In a strictly sequential process,such as illustrated in FIG. 2D, a forwarding node F receives a messageA1, and then initiates the transmission of the message A1′. In FIG. 2E,the proxy node P anticipates a completed transmission of the message A1from node S, and commences the transmission of message A1′ to node D assoon as it has enough data to make the transmission worthwhile.

In the example of a pair of WAN accelerators 20 of FIG. 1, communicationbetween the accelerators 20 is generally more efficient than between theaccelerators 20 and the nodes 10, using, for example, a compressed dataformat between the accelerators 20. When an accelerator 20 receives anamount of compressed data (A1 of FIG. 2E) to generate a sufficientamount of uncompressed data (A2 of FIG. 2E) to send to the destinationnode 10, the accelerator will commence transmission.

In a conventional dependency identification process, dependenciesbetween messages are identified as detailed above, each transmittedmessage A1′ being dependent upon an immediately preceding receivedmessage A1, and packets or data blocks within a message are eachdependent upon transmission of the preceding packet. In FIG. 2E, packetswithin messages A1 and A1′ are illustrated as dashed lines, and thewithin-message dependencies are illustrated as dashed inverted “V”s. Forease of reference and convenience, the term packet is used hereinafterto indicate a defined block of data that is communicated as such, andmay include one or more discrete transmission elements.

Using the conventional dependency identification process, the messageA1′ will either be determined to be dependent upon the last receivedmessage Q1, or, if the time between A1′ and Q1 is longer than some‘proximate-in-time’ threshold, will be determined to be independent ofany prior received message. However, the commencement of transmission ofmessage A1′ is also dependent upon receiving a sufficient amount ofmessage A1 to provide the initial packets of message A1′. That is, thefirst packet 240 of message A1′ from node P is dependent upon receipt ofpacket 230 of message A1 at node P from node S, but this dependency willnot be identified in a conventional dependency identification process.In like manner, the transmission of subsequent packets in message A1′ isdependent upon receipt of subsequent packets in message A1. Although theexact dependency between packets in message A1′ and packets in messageA1 may not be determinable, particularly if message A1 is a compressedform of message A1′, an identification of some intra-packet dependencywill be sufficient to avoid infeasible situations in subsequent networkanalyses tasks.

A similar scenario is illustrated in FIG. 2F, except that in thisexample, the proxy node is illustrated as receiving uncompressed datafrom the source S, and forwards the data as compressed data todestination D. Using the example of FIG. 1, FIG. 2F can be considered toillustrate the receipt of a large file A1 from a node 10 at theaccelerator 20 and the forwarding of the file A1′ using the moreefficient accelerator-to-accelerator communications, whereas FIG. 2Eillustrates the receipt of a large file A1 at one accelerator 20 fromthe other accelerator 20, and the forwarding of this large file A1′ to anode 10.

In the scenario of FIG. 2F, as in the scenario of FIG. 2E, theconventional dependency identification process will not identify anydependency between message A1′ and message A1, because message A1 isreceived at node P “after” message A1′ is transmitted from node P.

In accordance with aspects of this invention, dependencies that are notidentified in conventional dependency identification processes due tothe avoidance of strictly sequential processes at proxy nodes will beidentified and provided to subsequent analyses processes to enable theseprocesses to avoid infeasible or impossible situations. In a preferredembodiment of this invention, nodes that can introduce non-sequentialscenarios are identified as proxy nodes, and transmissions from thesenodes are assumed to include multiple parent dependencies. The inventorshave observed that transmissions from proxy nodes are often dependentupon being able to forward the message (forwarding dependency) and uponbeing requested to provide the message (requesting dependency).

The terms ‘forwarding’ and ‘requesting’ dependencies are usedhereinafter for convenience and ease of understanding, and do not implythat these dependencies are limited to explicit forwarding or requestingactions. In accordance with this invention, a ‘forwarding’ dependency isa dependency of a transmission to a node that is based on a receptionfrom a different node, whereas a ‘requesting’ dependency is a dependencyof a transmission to a node that is based on a reception from that samenode. For example, when a WAN accelerator 20 transmits data to a node 10based on a command from the other accelerator 20, the transmission ofthe data will have a “forwarding” dependency on receipt of the command,even though the received command is not, per se, being forwarded. Inlike manner, when a node provides a transmission in response to anacknowledgement of receipt of a preceding message, the transmission willhave a “requesting” dependency on receipt of the acknowledgement, eventhough the acknowledgement is not a request, per se.

FIG. 3 illustrates an example flow diagram for embodying aspects of thisinvention. At 310, the proxy nodes are identified, and the transmissionsfrom each proxy node are processed via the loop 310-380.

At 315, relevant transmitted and received messages are identified. Asnoted above, depending upon the particular techniques used to collectthe data from the nodes, the collected data may include transmissionsand receptions that are unrelated to the transaction being analyzed. Anyof a variety of techniques may be used to identify relevant messages,including, for example, investigating information contained in theheader of each message. Additionally, in a preferred embodiment of thisinvention, select transmissions from particular proxy nodes may beprocessed to identify messages that are relevant to the subsequentdependency identification process. For example, proxy nodes that areknown to commence the forwarding of a long message before completion ofreceipt of the message will be identified, and packets within such longmessages will be defined as ‘messages’ for subsequent processing in FIG.3 to identify the dependencies of these packets/messages, as discussedabove with regard to FIGS. 2E-2F. In like manner, if some messages froma proxy node are known to be strictly sequential, these messages can beeliminated from the subsequent processing of FIG. 3, relying onconventional dependency determination techniques to identify thisstrictly sequential dependency.

At 320, the relevant messages are preferably sorted by time, tofacilitate subsequent time-based processing.

The loop 325-375 is structured to identify a forwarding and requestingdependency for each of the above identified relevant transmittedmessages for the current proxy node. At 330, the destination of themessage is identified, in order to distinguish ‘forwarding’ and‘requesting’ dependencies.

At 335, the sorted messages are searched backward in time to identifythe most recent receptions that may have caused the current transmissionto the identified destination. At 340, the time between the identifiedreception and the current transmission is above a ‘proximate-in-time’threshold, the identification of dependency for this transmission isterminated (via 375), on the assumption that a long gap in time betweenreception and transmission implies an independence of these events. Oneof skill in the art will recognize that different proximity-in-timetests could be applied, depending upon the particular messages, or typesof messages.

If, at 345, the identified reception of 335 is from the identifieddestination of 330, and, at 355, if this is the first identifiedreception from the destination, a requesting dependency is definedbetween the current transmission and the identified reception, at 365.

If, at 345, the identified reception of 335 is not from the identifieddestination of 330, and, at 350, if this is the first identifiedreception that is not from the destination, a forwarding dependency isdefined between the current transmission and the identified reception,at 360.

If both dependencies are found, at 370, the identification of dependencyfor this transmission is terminated, at 375. If either dependencyremains to be found, the above described process is repeated, via 335,by assessing the next preceding reception.

Each subsequent transmission from the current node is similarlyassessed, via 375, and each subsequent proxy node is assessed, via 380.

As illustrated in FIG. 3, each forwarding and requesting dependency ofeach transmission on proximate received messages, if any, will beidentified. Preferably, a conventional dependency determination processis also applied to identify the strictly sequential dependencies of theremaining transmissions of the transaction of interest. Thesedependencies will preferably be stored for subsequent use by one or morenetwork analysis processes.

FIG. 4 illustrates an example block diagram of a network analysis systemthat includes a dependency-determination process in accordance with thisinvention.

One or more network monitors 410 are configured to collect trace datacorresponding to transmissions and receptions among select nodes of thenetwork 450. Typically, the trace data will include some or all of theheader data of each transmitted and received message, as well as therecorded time of transmission and receipt. A traffic collator 420 isconfigured to process, filter, and synchronize the trace data, to setthese records to a common time base, and to link correspondingtransmission and reception records. Fundamentally, the traffic collator420 provides the collected trace data in a form that allows for thedetermination of traffic flow as illustrated in FIGS. 2A-2F.

The dependency determinator 430 is configured to identify dependenciesamong messages, and in particular, the dependency, if any, of eachtransmission from a node on one or more receptions at that node. In apreferred embodiment, the dependency determinator 430 identifies singledependencies using conventional dependency determination techniques, aswell as multiple dependencies using the techniques presented in thisdisclosure. Specifically, the dependency determinator 430 is configuredto identify requesting dependencies and forwarding dependencies, if any,between transmissions to a destination and receptions from thedestination and from another node, respectively.

The dependencies identified by the dependency determinator 430 areprovided to one or more network analysis processes to facilitateperformance analyses, including conditional analyses, commonly termed‘what-if’ analyses. As noted above, these identified dependencies enablethe network analysis processes to identify the critical paths oftransactions of interest and to perform one or more critical pathanalyses of these transactions on the network or on hypothesizednetworks. In this manner, the network analysis processes can avoidinfeasible sequences of events or results based on such infeasiblesequences, such as requested data arriving before the request issubmitted. The foregoing merely illustrates the principles of theinvention. It will thus be appreciated that those skilled in the artwill be able to devise various arrangements which, although notexplicitly described or shown herein, embody the principles of theinvention and are thus within its spirit and scope. For example, theflow diagram of FIG. 3 illustrates an independent process foridentifying multiple dependencies of transmissions from proxy nodes. Oneof skill in the art will recognize that this process could be embodiedwithin, or may embody, a conventional dependency identificationtechnique as well. For example, the loop 310-380 could be structured toprocess all intermediate/forwarding nodes, and the decision block 370could be structured to determine whether one or both dependencies needto be found, based on the particular node being processed, or based onthe particular transmission being processed. In like manner, althoughthis disclosure addresses dual dependencies, one of skill in the artwill recognize that additional dependencies may also be identified basedon other determinable characteristics of the messages. These and othersystem configuration and optimization features will be evident to one ofordinary skill in the art in view of this disclosure, and are includedwithin the scope of the following claims.

In interpreting these claims, it should be understood that:

a) the word “comprising” does not exclude the presence of other elementsor acts than those listed in a given claim;

b) the word “a” or “an” preceding an element does not exclude thepresence of a plurality of such elements;

c) any reference signs in the claims do not limit their scope;

d) several “means” may be represented by the same item or hardware orsoftware implemented structure or function;

e) each of the disclosed elements may be comprised of hardware portions(e.g., including discrete and integrated electronic circuitry), softwareportions (e.g., computer programming), and any combination thereof,

f) hardware portions may be comprised of one or both of analog anddigital portions;

g) any of the disclosed devices or portions thereof may be combinedtogether or separated into further portions unless specifically statedotherwise;

h) no specific sequence of acts is intended to be required unlessspecifically indicated; and

i) the term “plurality of” an element includes two or more of theclaimed element, and does not imply any particular range of number ofelements; that is, a plurality of elements can be as few as twoelements, and can include an immeasurable number of elements.

1. A method comprising: receiving trace data at a network analysissystem, the trace data corresponding to messages communicated amongnodes of a network, identifying dependencies between transmissions froman intermediate node of the network and receptions at the intermediatenode, and providing the dependencies to an analysis process of thenetwork analysis system to enable the analysis process to avoidinfeasible event sequences, wherein identifying the dependenciesincludes identifying a transmission that has a plurality of dependencypaths based on each of at least two receptions from different nodes. 2.The method of claim 1, wherein the transmission is to a destinationnode, and the at least two receptions include a first reception from thedestination node and a second reception that is from other than thedestination node.
 3. The method of claim 2, wherein the first receptionis a most recent reception from the destination before the transmissionto the destination.
 4. The method of claim 3, wherein the secondreception is a most recent reception from other than the destinationbefore the transmission to the destination.
 5. The method of claim 2,wherein the second reception is a most recent reception from other thanthe destination before the transmission to the destination.
 6. Themethod of claim 1, wherein identifying the at least two dependenciesincludes identifying a correspondence between the transmission and atleast one of the receptions.
 7. The method of claim 6, wherein thecorrespondence is based at least in part on information in headers ofthe transmission and the at least one reception.
 8. The method of claim1, wherein identifying the at least two dependencies includes comparinga time of arrival of at least one of the receptions to a time of thetransmission.
 9. The method of claim 1, wherein identifying the at leasttwo dependencies includes assuring that times of arrival of the at leasttwo receptions are within a given time span of a time of thetransmission.
 10. The method of claim 1, including adding information toeach transmission to facilitate determination of the dependencies.
 11. Asystem comprising: a traffic collator that is configured to receivetrace data corresponding to messages communicated among nodes of anetwork, a dependency determinator that is configured to identifydependencies between transmissions from an intermediate node of thenetwork and receptions at the intermediate node, and a network analysiscomponent that is configured to avoid infeasible event sequences basedon the dependencies, wherein identifying the dependencies includesidentifying a transmission that has a plurality of dependency pathsbased on each of at least two receptions from different nodes.
 12. Thesystem of claim 11, wherein the transmission is to a destination node,and the at least two receptions include a first reception from thedestination node and a second reception that is from other than thedestination node.
 13. The system of claim 12, wherein the firstreception is a most recent reception from the destination before thetransmission to the destination.
 14. The system of claim 13, wherein thesecond reception is a most recent reception from other than thedestination before the transmission to the destination.
 15. The systemof claim 12, wherein the second reception is a most recent receptionfrom other than the destination before the transmission to thedestination.
 16. The system of claim 11, wherein the dependencydeterminator is configured to identify the at least two dependenciesbased on a correspondence between the transmission and at least one ofthe receptions.
 17. The system of claim 16, wherein the correspondenceis based at least in part on information in headers of the transmissionand the at least one reception.
 18. The system of claim 11, wherein thedependency determinator is configured to identify the at least twodependencies based on a comparison of a time of arrival of at least oneof the receptions to a time of the transmission.
 19. The system of claim11, wherein the dependency determinator is configured to identify the atleast two dependencies subject to times of arrival of the at least tworeceptions being within a given time span of a time of the transmission.20. A computer program stored on a computer-readable medium that, whenexecuted, is configured to cause a processor to: receive trace datacorresponding to messages communicated among nodes of a network,identify dependencies between transmissions from an intermediate node ofthe network and receptions at the intermediate node, and provide thedependencies to a network analysis system that is configured to avoidinfeasible event sequences based on the dependencies, whereinidentifying the dependencies includes identifying a transmission thathas a plurality of dependency paths based on each of at least tworeceptions from different nodes.
 21. The computer program of claim 20,wherein the program causes the processor to identify the dependenciessubject to times of arrival of the at least two receptions being withina given time span of a time of the transmission.
 22. The computerprogram of claim 20, wherein the transmission is to a destination node,and the at least two receptions include a first reception from thedestination node and a second reception that is from other than thedestination node.
 23. The computer program of claim 22, wherein thefirst reception is a most recent reception from the destination beforethe transmission to the destination.
 24. The computer program of claim23, wherein the second reception is a most recent reception from otherthan the destination before the transmission to the destination.
 25. Thecomputer program of claim 22, wherein the second reception is a mostrecent reception from other than the destination before the transmissionto the destination.
 26. The computer program of claim 20, wherein theprogram causes the processor to identify the at least two dependenciesbased on a correspondence between the transmission and at least one ofthe receptions.
 27. The computer program of claim 26, wherein thecorrespondence is based at least in part on information in headers ofthe transmission and the at least one reception.
 28. The computerprogram of claim 20, wherein the program causes the processor toidentify the at least two dependencies based on a comparison of a timeof arrival of at least one of the receptions to a time of thetransmission.